

package org.springframework.security.authentication;

import org.springframework.security.core.Authentication;
import org.springframework.security.core.AuthenticationException;

/**
 * 1.认证工作主要由AuthenticationManger接口来负责
 * 2.该接口只有一个authenticate方法可以用来做认证
 *
 * @author Ben Alex
 */
public interface AuthenticationManager {
	// ~ Methods
	// ========================================================================================================


	/**
	 *  返回null，表示不能断定
	 * @param authentication  Authentication信息
	 * @return 返回Authentication，表示认证成功
	 * @throws AuthenticationException 抛出AuthenticationException异常，表示用户输入了无效的凭证
	 */
	Authentication authenticate(Authentication authentication)
			throws AuthenticationException;
}
